package com.bkgy.modularbx.coil_track_fullproc.domain;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelIgnore;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 钢卷分卷全流程表（产线代码：HOT-热轧 TCM2280-酸轧 CAL-连退 CGL1870-镀锌）
 * @TableName T_COIL_TRACKING_FULLPROC
 */
@TableName(value ="T_COIL_TRACKING_FULLPROC")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "钢卷分卷全流程信息")
public class TCoilTrackingFullproc {
    /**
     * 自增主键
     */
    @TableId(type = IdType.AUTO)
    @ExcelIgnore
    @Schema(description = "自增主键")
    private Integer indocno;

    /**
     * 订单号
     */
    @TableField(value = "ORDERNO")
    @Excel(name = "订单号", width = 20,orderNum = "5")
    @Schema(description = "订单号")
    private String orderNo;

    /**
     * 热轧卷号
     */
    @Excel(name = "热轧卷号", width = 20,orderNum = "10")
    @Schema(description = "热轧卷号")
    private String hotCoilId;

    /**
     * 热轧卷重量（单位：吨）
     */
    @Excel(name = "热轧卷重量(吨)", width = 15,orderNum = "15")
    @Schema(description = "热轧卷重量(吨)")
    private BigDecimal hotCoilWeight;

    /**
     * 热轧卷重量异常标记（0-正常 1-超差）
     */
    @Schema(description = "热轧卷重量异常标记(0-正常 1-超差)")
    private String hotCoilWtFlag;

    /**
     * 订单最小卷重(吨)
     */
    @TableField(value = "ORDER_MIN_WT")
    @Excel(name = "订单最小卷重(吨)", width = 15,orderNum = "22")
    @Schema(description = "订单最小卷重(吨)")
    private BigDecimal orderMinWt;
    
    /**
     * 订单最大卷重(吨)
     */
    @TableField(value = "ORDER_MAX_WT")
    @Excel(name = "订单最大卷重(吨)", width = 15,orderNum = "23")
    @Schema(description = "订单最大卷重(吨)")
    private BigDecimal orderMaxWt;

    /**
     * 酸轧出口卷号（产线TCM2280，格式：TCM2280+热轧卷号后8位）
     */
    @Excel(name = "酸轧出口卷号", width = 20,orderNum = "25")
    @Schema(description = "酸轧出口卷号")
    private String tcm2280Extid;

    /**
     * 酸轧后卷重
     */
    @Excel(name = "酸轧后卷重", width = 15,orderNum = "30")
    @Schema(description = "酸轧后卷重")
    private BigDecimal tcm2280Weight;

    /**
     * 酸轧重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "酸轧重量异常标记", width = 15,orderNum = "35",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "酸轧重量异常标记(0-正常 1-超差)")
    private String tcm2280WtFlag;
    
    /**
     * 酸轧2280损失重量(吨)
     */
    @TableField(value = "TCM2280_LOSS")
    @Excel(name = "酸轧损失重量(吨)", width = 15,orderNum = "36")
    @Schema(description = "酸轧2280损失重量(吨)")
    private BigDecimal tcm2280Loss;
    
    /**
     * 酸轧2280成材率
     */
    @TableField(value = "TCM2280_YIELD")
    @Excel(name = "酸轧成材率", width = 15,orderNum = "37")
    @Schema(description = "酸轧2280成材率")
    private BigDecimal tcm2280Yield;
    
    /**
     * 酸轧2280工序完成时间
     */
    @TableField(value = "TCM2280_TOC")
    @Excel(name = "酸轧工序完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "38")
    @Schema(description = "酸轧2280工序完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date tcm2280Toc;
    
    /**
     * 酸轧2280出口厚度(mm)
     */
    @TableField(value = "TCM2280_OUT_THICK")
    @Excel(name = "酸轧出口厚度(mm)", width = 15,orderNum = "39")
    @Schema(description = "酸轧2280出口厚度(mm)")
    private BigDecimal tcm2280OutThick;
    
    /**
     * 酸轧2280出口宽度(mm)
     */
    @TableField(value = "TCM2280_OUT_WIDTH")
    @Excel(name = "酸轧出口宽度(mm)", width = 15,orderNum = "39")
    @Schema(description = "酸轧2280出口宽度(mm)")
    private BigDecimal tcm2280OutWidth;

    /**
     * 连退2150出口卷号
     */
    @Excel(name = "连退2150出口卷号", width = 20,orderNum = "40")
    @Schema(description = "连退2150出口卷号")
    private String cal2150Extid;

    /**
     * 连退2150工序后卷重
     */
    @Excel(name = "连退2150工序后卷重", width = 15,orderNum = "45")
    @Schema(description = "连退2150工序后卷重")
    private BigDecimal cal2150Weight;

    /**
     * 连退2150重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "连退2150重量异常标记", width = 15,orderNum = "50",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "连退2150重量异常标记(0-正常 1-超差)")
    private String cal2150WtFlag;
    
    /**
     * 连退2150损失重量(吨)
     */
    @TableField(value = "CAL2150_LOSS")
    @Excel(name = "连退2150损失重量(吨)", width = 15,orderNum = "51")
    @Schema(description = "连退2150损失重量(吨)")
    private BigDecimal cal2150Loss;
    
    /**
     * 连退2150成材率
     */
    @TableField(value = "CAL2150_YIELD")
    @Excel(name = "连退2150成材率", width = 15,orderNum = "52")
    @Schema(description = "连退2150成材率")
    private BigDecimal cal2150Yield;
    
    /**
     * 连退2150工序完成时间
     */
    @TableField(value = "CAL2150_TOC")
    @Excel(name = "连退2150工序完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "53")
    @Schema(description = "连退2150工序完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cal2150Toc;
    
    /**
     * 连退2150出口厚度(mm)
     */
    @TableField(value = "CAL2150_OUT_THICK")
    @Excel(name = "连退2150出口厚度(mm)", width = 15,orderNum = "54")
    @Schema(description = "连退2150出口厚度(mm)")
    private BigDecimal cal2150OutThick;
    
    /**
     * 连退2150出口宽度(mm)
     */
    @TableField(value = "CAL2150_OUT_WIDTH")
    @Excel(name = "连退2150出口宽度(mm)", width = 15,orderNum = "54")
    @Schema(description = "连退2150出口宽度(mm)")
    private BigDecimal cal2150OutWidth;

    /**
     * 连退1630出口卷号
     */
    @Excel(name = "连退1630出口卷号", width = 20,orderNum = "55")
    @Schema(description = "连退1630出口卷号")
    private String cal1630Extid;

    /**
     * 连退1630工序后卷重
     */
    @Excel(name = "连退1630工序后卷重", width = 15,orderNum = "60")
    @Schema(description = "连退1630工序后卷重")
    private BigDecimal cal1630Weight;

    /**
     * 连退1630重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "连退1630重量异常标记", width = 15,orderNum = "65",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "连退1630重量异常标记(0-正常 1-超差)")
    private String cal1630WtFlag;
    
    /**
     * 连退1630损失重量(吨)
     */
    @TableField(value = "CAL1630_LOSS")
    @Excel(name = "连退1630损失重量(吨)", width = 15,orderNum = "66")
    @Schema(description = "连退1630损失重量(吨)")
    private BigDecimal cal1630Loss;
    
    /**
     * 连退1630成材率
     */
    @TableField(value = "CAL1630_YIELD")
    @Excel(name = "连退1630成材率", width = 15,orderNum = "67")
    @Schema(description = "连退1630成材率")
    private BigDecimal cal1630Yield;
    
    /**
     * 连退1630工序完成时间
     */
    @TableField(value = "CAL1630_TOC")
    @Excel(name = "连退1630工序完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "68")
    @Schema(description = "连退1630工序完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cal1630Toc;
    
    /**
     * 连退1630出口厚度(mm)
     */
    @TableField(value = "CAL1630_OUT_THICK")
    @Excel(name = "连退1630出口厚度(mm)", width = 15,orderNum = "69")
    @Schema(description = "连退1630出口厚度(mm)")
    private BigDecimal cal1630OutThick;
    
    /**
     * 连退1630出口宽度(mm)
     */
    @TableField(value = "CAL1630_OUT_WIDTH")
    @Excel(name = "连退1630出口宽度(mm)", width = 15,orderNum = "69")
    @Schema(description = "连退1630出口宽度(mm)")
    private BigDecimal cal1630OutWidth;

    /**
     * 镀锌出口卷号
     */
    @Excel(name = "镀锌出口卷号", width = 20,orderNum = "70")
    @Schema(description = "镀锌出口卷号")
    private String cgl1870Extid;

    /**
     * 镀锌后卷重
     */
    @Excel(name = "镀锌后卷重", width = 15,orderNum = "75")
    @Schema(description = "镀锌后卷重")
    private BigDecimal cgl1870Weight;

    /**
     * 镀锌重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "镀锌重量异常标记", width = 15,orderNum = "80",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "镀锌重量异常标记(0-正常 1-超差)")
    private String cgl1870WtFlag;
    
    /**
     * 镀锌1870损失重量(吨)
     */
    @TableField(value = "CGL1870_LOSS")
    @Excel(name = "镀锌损失重量(吨)", width = 15,orderNum = "81")
    @Schema(description = "镀锌1870损失重量(吨)")
    private BigDecimal cgl1870Loss;
    
    /**
     * 镀锌1870成材率
     */
    @TableField(value = "CGL1870_YIELD")
    @Excel(name = "镀锌成材率", width = 15,orderNum = "82")
    @Schema(description = "镀锌1870成材率")
    private BigDecimal cgl1870Yield;
    
    /**
     * 镀锌1870工序完成时间
     */
    @TableField(value = "CGL1870_TOC")
    @Excel(name = "镀锌工序完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "83")
    @Schema(description = "镀锌1870工序完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cgl1870Toc;
    
    /**
     * 镀锌1870出口厚度(mm)
     */
    @TableField(value = "CGL1870_OUT_THICK")
    @Excel(name = "镀锌出口厚度(mm)", width = 15,orderNum = "84")
    @Schema(description = "镀锌1870出口厚度(mm)")
    private BigDecimal cgl1870OutThick;
    
    /**
     * 镀锌1870出口宽度(mm)
     */
    @TableField(value = "CGL1870_OUT_WIDTH")
    @Excel(name = "镀锌出口宽度(mm)", width = 15,orderNum = "84")
    @Schema(description = "镀锌1870出口宽度(mm)")
    private BigDecimal cgl1870OutWidth;

    /**
     * 一次重卷分切卷号
     */
    @Excel(name = "一次重卷分切卷号", width = 20,orderNum = "85")
    @Schema(description = "一次重卷分切卷号")
    private String rewind1Extid;

    /**
     * 一次分切重量
     */
    @Excel(name = "一次分切重量", width = 15,orderNum = "90")
    @Schema(description = "一次分切重量")
    private BigDecimal rewind1Weight;

    /**
     * 一次重卷分切重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "一次重卷分切重量异常标记", width = 15,orderNum = "95",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "一次重卷分切重量异常标记(0-正常 1-超差)")
    private String rewind1Flag;
    
    /**
     * 重卷1线损失重量(吨)
     */
    @TableField(value = "REWIND1_LOSS")
    @Excel(name = "重卷1线损失重量(吨)", width = 15,orderNum = "96")
    @Schema(description = "重卷1线损失重量(吨)")
    private BigDecimal rewind1Loss;
    
    /**
     * 重卷1线成材率
     */
    @TableField(value = "REWIND1_YIELD")
    @Excel(name = "重卷1线成材率", width = 15,orderNum = "97")
    @Schema(description = "重卷1线成材率")
    private BigDecimal rewind1Yield;
    
    /**
     * 重卷1线分切完成时间
     */
    @TableField(value = "REWIND1_TOC")
    @Excel(name = "重卷1线分切完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "98")
    @Schema(description = "重卷1线分切完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date rewind1Toc;
    
    /**
     * 重卷1线出口厚度(mm)
     */
    @TableField(value = "REWIND1_OUT_THICK")
    @Excel(name = "重卷1线出口厚度(mm)", width = 15,orderNum = "99")
    @Schema(description = "重卷1线出口厚度(mm)")
    private BigDecimal rewind1OutThick;
    
    /**
     * 重卷1线出口宽度(mm)
     */
    @TableField(value = "REWIND1_OUT_WIDTH")
    @Excel(name = "重卷1线出口宽度(mm)", width = 15,orderNum = "99")
    @Schema(description = "重卷1线出口宽度(mm)")
    private BigDecimal rewind1OutWidth;

    /**
     * 二次重卷分切卷号
     */
    @Excel(name = "二次重卷分切卷号", width = 20,orderNum = "100")
    @Schema(description = "二次重卷分切卷号")
    private String rewind2Extid;

    /**
     * 二次分切重量
     */
    @Excel(name = "二次分切重量", width = 15,orderNum = "105")
    @Schema(description = "二次分切重量")
    private BigDecimal rewind2Weight;

    /**
     * 二次重卷分切重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "二次重卷分切重量异常标记", width = 15,orderNum = "110",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "二次重卷分切重量异常标记(0-正常 1-超差)")
    private String rewind2Flag;
    
    /**
     * 重卷2线损失重量(吨)
     */
    @TableField(value = "REWIND2_LOSS")
    @Excel(name = "重卷2线损失重量(吨)", width = 15,orderNum = "111")
    @Schema(description = "重卷2线损失重量(吨)")
    private BigDecimal rewind2Loss;
    
    /**
     * 重卷2线成材率
     */
    @TableField(value = "REWIND2_YIELD")
    @Excel(name = "重卷2线成材率", width = 15,orderNum = "112")
    @Schema(description = "重卷2线成材率")
    private BigDecimal rewind2Yield;
    
    /**
     * 重卷2线分切完成时间
     */
    @TableField(value = "REWIND2_TOC")
    @Excel(name = "重卷2线分切完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "113")
    @Schema(description = "重卷2线分切完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date rewind2Toc;
    
    /**
     * 重卷2线出口厚度(mm)
     */
    @TableField(value = "REWIND2_OUT_THICK")
    @Excel(name = "重卷2线出口厚度(mm)", width = 15,orderNum = "114")
    @Schema(description = "重卷2线出口厚度(mm)")
    private BigDecimal rewind2OutThick;
    
    /**
     * 重卷2线出口宽度(mm)
     */
    @TableField(value = "REWIND2_OUT_WIDTH")
    @Excel(name = "重卷2线出口宽度(mm)", width = 15,orderNum = "114")
    @Schema(description = "重卷2线出口宽度(mm)")
    private BigDecimal rewind2OutWidth;

    /**
     * 三次重卷分切卷号
     */
    @Excel(name = "三次重卷分切卷号", width = 20,orderNum = "115")
    @Schema(description = "三次重卷分切卷号")
    private String rewind3Extid;

    /**
     * 三次分切重量
     */
    @Excel(name = "三次分切重量", width = 15,orderNum = "120")
    @Schema(description = "三次分切重量")
    private BigDecimal rewind3Weight;

    /**
     * 三次重卷分切重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "三次重卷分切重量异常标记", width = 15,orderNum = "125",replace = {
            "正常_0",     // 值0 → 显示"正常"
            "超_1",     // 值1 → 显示"超差"
            "差_-1",     // 值1 → 显示"超差"
            "正常(+)_10",     // 值1 → 显示"超差"
            "_null"
    })
    @Schema(description = "三次重卷分切重量异常标记(0-正常 1-超差)")
    private String rewind3Flag;
    
    /**
     * 重卷3线损失重量(吨)
     */
    @TableField(value = "REWIND3_LOSS")
    @Excel(name = "重卷3线损失重量(吨)", width = 15,orderNum = "126")
    @Schema(description = "重卷3线损失重量(吨)")
    private BigDecimal rewind3Loss;
    
    /**
     * 重卷3线成材率
     */
    @TableField(value = "REWIND3_YIELD")
    @Excel(name = "重卷3线成材率", width = 15,orderNum = "127")
    @Schema(description = "重卷3线成材率")
    private BigDecimal rewind3Yield;
    
    /**
     * 重卷3线分切完成时间
     */
    @TableField(value = "REWIND3_TOC")
    @Excel(name = "重卷3线分切完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",orderNum = "128")
    @Schema(description = "重卷3线分切完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date rewind3Toc;
    
    /**
     * 重卷3线出口厚度(mm)
     */
    @TableField(value = "REWIND3_OUT_THICK")
    @Excel(name = "重卷3线出口厚度(mm)", width = 15,orderNum = "129")
    @Schema(description = "重卷3线出口厚度(mm)")
    private BigDecimal rewind3OutThick;
    
    /**
     * 重卷3线出口宽度(mm)
     */
    @TableField(value = "REWIND3_OUT_WIDTH")
    @Excel(name = "重卷3线出口宽度(mm)", width = 15,orderNum = "129")
    @Schema(description = "重卷3线出口宽度(mm)")
    private BigDecimal rewind3OutWidth;

    /**
     * 订单厚度
     */
    @Excel(name = "订单厚度", width = 15,orderNum = "130")
    @Schema(description = "订单厚度")
    private BigDecimal orderThick;

    /**
     * 订单宽度
     */
    @Excel(name = "订单宽度", width = 15,orderNum = "135")
    @Schema(description = "订单宽度")
    private BigDecimal orderWidth;

    /**
     * 钢种代码
     */
    @Excel(name = "钢种代码", width = 15,orderNum = "140")
    @Schema(description = "钢种代码")
    private String steelgrade;

    /**
     * 记录创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "145")
    @Schema(description = "记录创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

}